IncrediLink
Note: Support for Visual Studio 2008 and earlier has been deprecated as these versions are no longer supported by Microsoft.
The IncrediLink option can speed up incremental links. It does this by combining Visual Studio's incremental linking option and modifying the link.exe command line, so that references to LIB files are replaced by references to the OBJ files, which make up that LIB file (wherever possible). This is required in order for the incremental linking feature to be effective in solutions consisting of LIB projects, which are linked into the main project(s). IncrediLink only affects linkage of DLL and EXE projects.
>To turn on IncrediLink:
-
Go to Agent Settings > Visual Studio Builds > Linker.
-
Select By default, enable IncrediLink and then select the required options:
-
According to "Enable Incremental Linking" project setting – Activate IncrediLink only for projects that have "Incremental Linking" turned on (which is enabled by default).
-
For all projects – Activate IncrediLink for all projects.
-
Do not create libraries – Controls whether Incredibuild skips the link step of LIB projects whose OBJ files IncrediLink embeds into their parent project's link command line. As these LIB projects' OBJ files are linked into the main executable/DLL, it is often possible to save additional build time by avoiding these LIB projects' link step.
-
-
Select the mode of operation, either According to Incredibuild default setting or According to 'use Library Dependency Inputs' project option (IncrediLink is only activated only for projects which have this setting activated in the project's properties).
Considerations
-
Duplicate Symbol link error messages may show up if different library projects define the same symbol twice. This is because the linker is more tolerant to duplicate symbols residing in libraries than it is to duplicate symbols defined in different object files. If this happens, change your code to include each symbol definition once.
-
Missing Function body link errors may show up. To work around this, add function body stubs to your code.
-
Symbols that are not referenced anywhere in the code are still included in the final output (with regular links, they are ignored).